Virtual machine platforms enable simultaneous execution of multiple guest operating systems on a physical machine by running each operating system within its own virtual machine. One exemplary service that can be offered in a virtual machine is a virtual desktop session. A virtual desktop session is essentially a personal computer environment run within a virtual machine that has its user interface sent to a remote computer. In order to virtualize a desktop, an operating system and all of a user's programs and data is encapsulated in a virtual hard disk file (VHD), which is then executed by a virtual processor in a virtual machine; and accessed by a remote client device. This architecture is similar to a remote desktop environment, however instead of having multiple users simultaneously connect to an operating system, each user has access to their own operating system executing in a virtual machine in a virtual desktop environment.
When a virtual desktop is deployed in a datacenter, the virtual hard disk files are typically deployed on a centralized storage server such as a Storage Area Network (SAN) target and virtualization hosts read the virtual hard disk files off the SAN target. This deployment allows the virtual desktop to be dynamically instantiated on any virtualization host in the datacenter. SAN targets make logical unit numbers (LUNs), e.g., disks, available over a high-speed network to the virtualization hosts and unlike network attached storage, SAN targets do not appear as remote storage to the virtualization hosts. SAN targets however, are expensive and it would be beneficial if a commodity server (with low priced central storage) could be used to centrally deploy virtual hard disk files.